{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 21  Training Linear Classifiers with Logistic Regression\n",
    "# 21. 1 Linearly Separating Customers By Size\n",
    "\n",
    "In Section Fourteen, we simulated customer heights (in inches) and weights (in pounds). We’ll now proceed to re-run that simulation. For the purpose of this exercise, we’ll focus on the two classes; _Large_ and _Not Large_. We’ll assume that customers within the _Large_ class are taller than 72 inches and heavier than 160 lb.\n",
    "\n",
    "**Listing 21. 1. Simulating Categorized Customer Measurements**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "np.random.seed(1)\n",
    "\n",
    "def plot_customers(X, y, xlabel='Inches (in)', ylabel='Pounds (lb)'):\n",
    "    colors = ['g', 'y']\n",
    "    labels = ['Not Large', 'Large']\n",
    "    for i, (color, label) in enumerate(zip(colors, labels)):\n",
    "        plt.scatter(X[:,0][y == i], X[:,1][y == i], color=color, label=label)\n",
    "    \n",
    "    plt.xlabel(xlabel)\n",
    "    plt.ylabel(ylabel)\n",
    "    \n",
    "inches = np.arange(60, 78, 0.1)\n",
    "random_fluctuations = np.random.normal(scale=10, size=inches.size) \n",
    "pounds = 4 * inches - 130 + random_fluctuations\n",
    "X = np.array([inches, pounds]).T\n",
    "y = ((X[:,0] > 72) & (X[:,1] > 160)).astype(int)\n",
    "\n",
    "plot_customers(X, y)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can image a knife slicing through the cigar-shaped plot, in order to separate the colors. The knife acts like a boundary that separates the two customer classes. We can represent this boundary using a line with slope of -3.5 and a y-intercept of 415.\n",
    "\n",
    "**Listing 21. 2. Plotting a boundary to separate the two customer classes**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def boundary(inches): return -3.5 * inches + 415\n",
    "plt.plot(X[:,0], boundary(X[:,0]), color='k', label='Boundary')\n",
    "plot_customers(X, y)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Most of the customers within the _Large_ class are located above the plotted line. Hence, we can use this line to classify the customers. Given a customer with measurement of `(inches, lbs)`, we predict the customer’s class by checking whether `lbs > -3.5 * inches + 415`. \n",
    "\n",
    "**Listing 21. 3. Predicting classes using a linear boundary**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The f-measure is 0.97\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import f1_score\n",
    "y_pred = []\n",
    "for inches, lbs in X:\n",
    "    prediction = int(lbs > -3.5 * inches + 415)\n",
    "    y_pred.append(prediction)\n",
    "    \n",
    "f_measure = f1_score(y_pred, y)\n",
    "print(f'The f-measure is {f_measure:.2f}')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "we can run the classification more concisely using vector dot products.\n",
    "\n",
    "**Listing 21. 4. Predicting classes using vector dot products**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "weights = np.array([3.5, 1, -415])\n",
    "predictions = [int(weights @ [inches, lbs, 1] > 0) for inches, lbs in X]\n",
    "assert predictions == y_pred"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can further consolidate our code if we use matrix multiplication.\n",
    "\n",
    "**Listing 21. 5. Predicting classes using matrix multiplication**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "First five rows of our padded feature matrix are:\n",
      "[[ 60.   126.24   1.  ]\n",
      " [ 60.1  104.28   1.  ]\n",
      " [ 60.2  105.52   1.  ]\n",
      " [ 60.3  100.47   1.  ]\n",
      " [ 60.4  120.25   1.  ]]\n"
     ]
    }
   ],
   "source": [
    "M = np.column_stack([X, np.ones(X.shape[0])])\n",
    "print(\"First five rows of our padded feature matrix are:\")\n",
    "print(np.round(M[:5], 2))\n",
    "\n",
    "predictions = (M @ weights > 0).astype(int)\n",
    "assert predictions.tolist() == y_pred"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We've boiled down customer classification to a simple matrix-vector product. This matrix-product classifier is called a **linear classifier**.\n",
    "\n",
    "**Listing 21. 6. Defining a linear classifier function**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def linear_classifier(X, weights):\n",
    "    M = np.column_stack([X, np.ones(X.shape[0])])\n",
    "    return (M @ weights > 0).astype(int)\n",
    "\n",
    "predictions = linear_classifier(X, weights)\n",
    "assert predictions.tolist() == y_pred"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Linear classifiers check whether weighted features and a constant add-up to a value greater than zero. The constant-value, which is stored in `weights[-1]`, is referred to as the **bias**. Meanwhile, the remaining weights are called the **coefficients**.\n",
    "\n",
    "## 21. 2 Training a Linear Classifier\n",
    "\n",
    "We want to find a weight vector that optimizes class prediction on `X`. Lets start by setting `weights` to equal three random values.\n",
    "\n",
    "**Listing 21. 7. Classification using random weights**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "We inputted the following random weights:\n",
      "[1.76 0.4  0.98]\n",
      "\n",
      "The f-measure is 0.43\n"
     ]
    }
   ],
   "source": [
    "np.random.seed(0)\n",
    "weights = np.random.normal(size=3)\n",
    "y_pred = linear_classifier(X, weights)\n",
    "f_measure = f1_score(y_pred, y)\n",
    "\n",
    "print('We inputted the following random weights:')\n",
    "print(np.round(weights, 2))\n",
    "print(f'\\nThe f-measure is {f_measure:.2f}')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As expected, our f-measure is terrible! We can gain insight into why by printing `y_pred`.\n",
    "\n",
    "**Listing 21. 8. Outputting the predicted classes**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
      " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
      " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
      " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
      " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n"
     ]
    }
   ],
   "source": [
    "print(y_pred)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "All our data-points are assigned a class label of 1! The product of our weights and each feature vector is always greater than zero. Hence, our weights must be too high. Lowering the weights will yield more _Class 0_ predictions.\n",
    "\n",
    "**Listing 21. 9. Shifting the class predictions by lowering the weights**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "assert np.all(linear_classifier(X, [0, 0, 0]) == 0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can intelligently raise and lower the weights until our predictions align with the actual class labels. Lets devise a strategy for adjusting the weights to match the labels. We'll start by adjusting the bias at `weights[-1]`. One simple strategy entails comparing each _predicted_ / _actual_ class-label pair.\n",
    "\n",
    "**Listing 21. 10. Computing the bias shift based on prediction quality**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_bias_shift(predicted, actual):\n",
    "    if predicted == actual:\n",
    "        return 0\n",
    "    if predicted > actual:\n",
    "        return 1\n",
    "        \n",
    "    return -1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Mathematically, we can show that our `get_bias_shift` function is equivalent to `predicted - actual`.\n",
    "\n",
    "**Listing 21. 11. Computing the bias shift using arithmetic**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "for predicted, actual in [(0, 0), (1, 0), (0, 1), (1, 1)]:\n",
    "    bias_shift = get_bias_shift(predicted, actual)\n",
    "    assert bias_shift == predicted - actual"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Rather than shifting the bias by a single unit, we can shift it 1/10th of a unit, or or 10 units or 100 units. The actual unit-shift can be controlled by a parameter called the **learning rate**. The learning rate is multiplied against `predicted - actual` in order to adjust the shift size.\n",
    "\n",
    "**Listing 21. 12. Computing the bias shift with a learning rate**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_bias_shift(predicted, actual, learning_rate=0.1):\n",
    "    return learning_rate * (predicted - actual)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We are ready to adjust our bias. Below, we'll iterate over each `[inches, lbs, 1]` vector in `M`. For every ith vector, we'll predict the class label and compare it to the actual class within `y[i]`. Using each prediction, we'll compute the bias shift, and subtract it from the bias.\n",
    "\n",
    "**Listing 21. 13. Iteratively shifting the bias**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Our starting bias equaled 0.98.\n",
      "The adjusted bias equals -12.02.\n"
     ]
    }
   ],
   "source": [
    "def predict(v, weights): return int(v @ weights > 0)\n",
    "\n",
    "starting_bias = weights[-1]\n",
    "for i, actual in enumerate(y):\n",
    "    predicted = predict(M[i], weights)\n",
    "    bias_shift = get_bias_shift(predicted, actual)\n",
    "    weights[-1] -= bias_shift\n",
    "\n",
    "new_bias = weights[-1]\n",
    "print(f\"Our starting bias equaled {starting_bias:.2f}.\")\n",
    "print(f\"The adjusted bias equals {new_bias:.2f}.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The bias has drastically decreased. Lets check whether the shift improved our f-measure.\n",
    "\n",
    "**Listing 21. 14. Checking performance after the bias shift**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The f-measure is 0.43\n"
     ]
    }
   ],
   "source": [
    "y_pred = linear_classifier(X, weights)\n",
    "f_measure = f1_score(y_pred, y)\n",
    "print(f'The f-measure is {f_measure:.2f}')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Our f-measure remains the same. Simply adjusting the bias is insufficient. We need to adjust the coefficients as well but how? Naively, we could subtract the bias shift from every coefficient. Unfortunately, this naive approach is flawed. It always adjusts the coefficients. However, it is dangerous to adjust the coefficients when their associated features are equal to zero. Thus, we need to shift each coefficient by multiplying the bias shift with the coefficent's feature. In NumPy, we can do this by running `weights -= bias_shift * M[i]`.\n",
    "\n",
    "**Listing 21. 15. Computing all weight-shifts in one line of code**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The weights previously equaled:\n",
      "[  1.76   0.4  -12.02]\n",
      "\n",
      "The updated weights now equal:\n",
      "[ -4.64   2.22 -12.12]\n",
      "\n",
      "The f-measure is 0.78\n"
     ]
    }
   ],
   "source": [
    "old_weights = weights.copy()\n",
    "for i, actual in enumerate(y):\n",
    "    predicted = predict(M[i], weights)\n",
    "    bias_shift = get_bias_shift(predicted, actual)\n",
    "    weights -= bias_shift * M[i]\n",
    "\n",
    "y_pred = linear_classifier(X, weights)\n",
    "f_measure = f1_score(y_pred, y)\n",
    "\n",
    "print(\"The weights previously equaled:\")\n",
    "print(np.round(old_weights, 2))\n",
    "print(\"\\nThe updated weights now equal:\")\n",
    "print(np.round(weights, 2))\n",
    "print(f'\\nThe f-measure is {f_measure:.2f}')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Our f-measure has risen from 0.43 to 0.78. The weight shift strategy is working! Lets repeat the iteration 1000 times.\n",
    "\n",
    "**Listing 21. 16. Tweaking the weights over multiple iterations**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The f-measure after 1000 iterations is 0.68\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "np.random.seed(0)\n",
    "weights = np.random.normal(size=3)\n",
    "\n",
    "f_measures = []\n",
    "for _ in range(1000):\n",
    "    y_pred = linear_classifier(X, weights)\n",
    "    f_measures.append(f1_score(y_pred, y))\n",
    "\n",
    "    for i, actual in enumerate(y):\n",
    "        predicted = predict(M[i], weights)\n",
    "        bias_shift = get_bias_shift(predicted, actual)\n",
    "        weights -=  bias_shift * M[i]\n",
    "\n",
    "print(f'The f-measure after 1000 iterations is {f_measures[-1]:.2f}')\n",
    "plt.plot(range(len(f_measures)), f_measures)\n",
    "plt.xlabel('Iteration')\n",
    "plt.ylabel('F-measure')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The classifier performance oscillates wildly over the course of the iterations.The rapid fluctuations are caused by a weight shift that is consistently too high. We should slowly lower the weight shift over each additional iteration. We can do this by dividing the weight shift by `k` for each _kth_ iteration.\n",
    "\n",
    "**Listing 21. 17. Reducing weight shifts over multiple iterations**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The f-measure after 1000 iterations is 0.82\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEGCAYAAAB/+QKOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deXxddZ3/8dcnN3uzNGnTLW2athTKTksolEVZS3EBcQUcB0RFRVxQx18ZHXTqD2R+zrgwP3TEEVF/yCLbVKggIMgObdnbUhpKoQm0hO5L0myf3x/35OYkuWlv0ntys7yfj8d9cM73LPd7csr53O96zN0RERHpLivTGRARkcFJAUJERJJSgBARkaQUIEREJCkFCBERSSo70xlIl7Fjx3p1dXWmsyEiMqQsX778PXevSLZt2ASI6upqli1blulsiIgMKWb2Zm/bVMUkIiJJKUCIiEhSChAiIpKUAoSIiCSlACEiIkkpQIiISFIKECIiktSwGQcRpWfWbqJ8VC4zxxdnOisiQ9bW3c08srqBDxw+kTufq+MTNVO487k6Zk0o4dZlb/GpmqrEf29fvp42dxaedTD3vbKB+1ds4CunHMA9L77NruY2LphbxU3PvElpYQ7fOXMW1z60hrotjVx0fDW3LVtPlsHHjp7Mr/6+lrnTyvnUMVO45i+v0tLWzvlzq7jxyXVUji5g3owx/PKR1/nMcVM5cspofvLAaxTmxvjwkZO47uFa5h8yntzsLP784ttcdupMivOzufahNRwysYRZE0u44fE3uOR903n+rS2sbdjFxSdO40/L1rN+SyMfmzOZbY0tPLamgS+9fwZ3v1DP21sbmVFRxOZdzWzc3sSlpxzAI6vfpWHHHv5xXjU3P/sWdVsaOXZ6Oa/UbyM7K4svnDSd25evp7XdOX9uFb99Yh3bm1o4emoZz6zdxITSAi4/YybjivPTfs9suLwPoqamxqMaKFe98F4A1l3zwUjOL5JJ//HX1bxYt43fXzwXgKvuXckL67fy2sadHDllNI++1sBx08tZ8fZ2ZleVsXtPK7UNO6mZWs6DqzYyb/oYaht2ckRlKTuaWlm/ZTeHTirlwVUbOW56OWsbdvGLT8/h4//1VJ/z9uEjJ/HnF9/e6z6fqpnCrcvW73WfTxw9mT8tr9vrPjVTy1j25pY+53EwOGJyKYsvO7Ffx5rZcnevSbpNASLujfd2UZyfzdiivB7bFCBkOOv+77tjXYaW/j6f9hYg1AYROOXfH2Hejx7KdDZEMqatfXj8WByJ8rKjeZSrDSKkpU3/g4x0b27aRfmoXIrzc3B3Vr6znYqiPDASdbyrN+xgXHEeO5paGV+ax1ubdpOXHaM4P5t3d+zhwPFFrHxnO+OK83F3Xm/YxeSyAppa2hhblMf2phYaW9pobm2nrDCXorxsNu5ooiQ/h/ycGPVbGtm8u5lDJ5WwYVsTm3c1U1qQw46mVhynJD+HSaML2Lg9vq2kIIe3tzbS0tZOTiyLiaX51G9tTDzw87JjNLe1k5edRVNLG3nZWbS0ObndHir/80I9o/Iy+0ioKi/krc27e6R/dE4ldz5XD8AB44qofXcnZYU5bNndktjnI0dN4u4X3u5ynjlVo3nura0AjC3KY0p5Ac+/tZUp5QWs39wIwCkHVfDw6gYATjhgDKve2cHmXc1Ujylk3aZ4XuZOK+fZNzYDMG3sKN54bxdAl30mlubzzramHnk/rLKEV+q3A3DzF47j/F8/DUBxfjY7mlp7LP/XP8zhS//vOQCmjx3F2uC7wiaU5LNhe/y7rv/M0cyZWrbPv21/KECIhLz/x49wWGUJ93z1JG5dup6Fd76c2Lbumg+yfvNuzvzZo4m08IOrw7fnH8i///W1Actzunzzthcz9t0FOTEaW9qYOa4oESB++qkjufzWeJ6OqS5P/J2njx1F7bs7GV+Sz6mzxnPHc/G2hSnlhQCUFeYwrjiPtzbvZmJpARNKmtiwvYmK4jwmlubzPPEH7I6mVrbubuHwytJEgJg5rpj3djSzeVczM8cXJx7+H5tTmQgQ1WMKEwEivM+icw7jC7+PV3PnZmfR3NoOwOdPnM43bn0BgFkTOju6TC4rZNU78cDxn+fP5qLfLk2kdzhgXFEiQFx7/my+dvPzAIwvyUsEiDlTy5JWjaeDAoRIoKM9ruPX3kv123rs897OPV3WH1vzXo99Hq/tmTYY/OO8qfz+qc6JO39/8VzGFOViGLEso7U9/kDLMsMMYmZBScNobXdiZmTHsmhpayc3lkW7O0X52Wzd3cLowhyaW+PpjS1tvP/HjyS+58oPHcJ9r2zg2XWbOeGAMTxRu4mjp5axPNQgXJSfTWNLG+NKOh90Zx46AYgHiIrQAzAnKPm8umEHP/74kYkAkZ8TA2DL7hbWbYo/VN/e1sjCs2bxjVtfoDiv81f6S3Xb2BM8wB246PhqbnxyHRNL81m9cQfQtcqtrDCXA8cX8drGnV1+0Y8tyk0sT68YlVguyc/mvZ3NAF2uqbQgJ7FcnN/5+D1kYknS9DGh888/ZHxiOTvWWforzI0RFQUIkUDHA6NDS7d1gNZu9fRNzW099hmsdfnHVJd3CRDHTi8nL3v/Hy7du1d27/gydUwhZaNyuqR1rzMvzsumYcce2kN/8oKczrwV5nUubwhV4xQFD9Msg+2NndVNHQ/n59/aykXHx9PKRuWwdF08KIXv9dtbm2hui6+Hf4l3/LqHeBB5beNOAN7c1FkFFj5POL+j8joDRPhas7KsyzV3yA895IvzO/9W4Wrv8HliofPkp+Ee9kYBohdbdjVz9ZJVLDrnsExnRdLk5mffojA3RkFOjHWbdnHnc/UcNKGYSaMLmFJWyD/f1VmddN3DtT26Rd70zJt8965XuqTt2NPa43s6HkKDTVlhbpf1dASHZMysy3r5qFwmlhYAMHl0IbCJyWUFXfaZXhGvSikIPSjD58kKLYdLE0XBQ3Z2VVmXB2hedhZ7WtupHlOYOM9BE0rYtDNefRSWn5NFbnZ8n45qKoApZYWJNoW2dqdydAH1WxsZlRtjV/DDIPw3zQ8FiOoxoxKBpLffCxNHdwbWcHAJlyBG9fL3mFpemKjyCgeddFOA6MXPHnyNPy2v49BJJfveWYaEK0LtCR1e3bAj6b4/vn91j7TuwWEoOHRSCecdM4X3djYzd1o5n6yZzOGVpWxv6hnY0ul3F8+lrDCHNRt3ctSU0Rw8sYSDJxbziaOnMLtqNOfOqeTEmRVMGzOKjdubOGZaOX97dSMfOmISAKcfHK9OufGzxzB1zCiqxxTylVNmcMjEUubNGMOYolwuOLaKiuI8fn7eUZw0s4LC3BibdzdzzlGVVBTlcf1ja7n05BlMLC1gZ1MrHz96Mp8+toqfP7SGi0+oZteeNm5btp7/ddYsAI6eWs4x1WU8cPn7+O2T6/jGaTN5uX4bT72+iTMPncDhlaX88u+vc8lJ02nYuYfFL7zNP515EFPHFNLa5pSPyuXer53Izc++xbfnH8Tjte/x6js7qJlaxsPfPjnRtnLT54/lwVUb+e4HDmbS6ALGjMolJ5bF3V85AYCcWBY//vgRvLezmc+fNA0z47SDxwHwmwtreHbdZv7XmbOYOLqAgyIevKtxEIHufcF/sHgFNz65ju9/+BD+9c8ru2yToWkk9e+/48vHc3REPVtkeMnYOAgzW2Bmq82s1swWJtleZWYPm9nzZvaSmX0gtO2K4LjVZnZmlPnsbk9rW6IxMlyfvL2phTc37WJHU0tvh8ogsWFbE7Xv7mTTzj3s3NPKird7NjgPZ2NG5e57J5F9iKyKycxiwHXAGUAdsNTMFrv7ytBu3wNuc/dfmtkhwBKgOlg+DzgUmAQ8aGYHunvPFsEIXPbH53lg5UYAwgWso/71r7Q7ZGcZtVd/oJejJdNa29o5boQPeiwvUoCQ/RdlG8RcoNbd1wKY2S3AOUA4QDjQUclfCnRMunIOcIu77wHeMLPa4Hx9n8ylj25btj4RHADaQxGiozDRvSeLDKw7ltcx/9DxFOfncMPjb5CbnUXl6ALGFuVxy9K3qKke+lUrd116POf+4kkAHrj8fTjQ3NpOfk6M1vZ2FvzsMQBe+dczeXd7EwW5MQyjKD+b7Y0tlOTn7OXsIqmJMkBUAuEZtOqAY7vt8wPgr2b2VWAUcHro2Ke7HVvZ/QvM7BLgEoCqqqq0ZPo7t7/UZV2xYHB5qW4r3/rTi5yzZhLfWTCLRfes7LHPTc+8lYGc9V1xXnbSXlAAh1eWJpb3NotwUV42RRVFPdJE0iHTczGdD9zo7pOBDwB/MLOU8+Tu17t7jbvXVFRURJLB9mHSiD9c7NoTr2V8Z2sTTS0DUuOYEeGBUCKZEuVPjXpgSmh9cpAW9jlgAYC7P2Vm+cDYFI8dEMOll9dQ19LWTnNrOzuDX9w797T26M/eF0V52YlzZcr+VFVefe7hVIX67ItEIcoAsRSYaWbTiD/czwMu6LbPW8BpwI1mdjCQDzQAi4E/mtlPiDdSzwSejTCvvVIV0+DwxT8s52+vvptYX/nOdj7Rj/cLdBhXnJfxALE/I64vODY9VaoiexNZgHD3VjO7DLgfiAE3uPsKM1sELHP3xcC3gF+b2eUEU6J4/Cf7CjO7jXiDdivwlYHqwdSdqpgGh3BwSIe6LY1pPV9/tLb3nMpDZDCJtDXL3ZcQ77oaTrsytLwSOKGXY68Crooyf6lQCWJoys6yvVbhfPbEav7w1JscNqmUNvcuE8el29FTy4iZ8ey6zV3Sv3zyDK57+PUe+390dmd/jNNmjYssXyL7opHUgb6OstWo6p4efa2Bq5esYvFlJ5KbncXW3c0ctegBxhblsex78Q5qX/rDcgrzYtz5XD2nHzyOB1elt2TQoSQ/m+L8HOq3NvL8v5zB6MJ4t08zw917zBckMlLtbSS1+sNJ2lxx58vUb21kw7YmqsYUJqa9Dk+Rfd+KDYnldAWH6WNHUVqYw9TyQt7e1sSlJ89g085mjp1ezn2vbKCs26hiBQeR1ChASNrs7bkb5a/2h771/l7P/fmTpkfynSIjgQKEpN2jaxqo3jyKJS+/k0h7471d3PV8ND2VVSIQiYYChKRNR3PW9+7uOS32hb99NvEO4HT6h+PU3VMkKhquKQMiiuAA8EO90EkkMipBSFIbtjXxu6fWMWZULp87cRq/fmwtW3e3cO7sSv7nhbfJzc5i/qHjufeld/jwkZO4fXkd9VsHfmyBqpdEoqMAIUl98NrH2BRMZfHmpt384en4u4x/8Uhnv/2fPPAaAP/5t9oBzdthlSUcOXl0ZG0aIhKnACFJbQrNc1T77s7Iv+/y0w/kslMPSLyMvbWtnexYFq3By+RjWdajtHDVuYdHni+RkUwBYj9sCF5oPqE0fx97Dk7bGlt4eu0mdje3kmVGbiyL3c1t5GZ3bZp6au2myPMyujAnERygczZTzWoqkjkKEP3U3u6Jt5YN1VHVH//lk6wZgNJBMh+dU8mdz3VWEQ2Hl/yIDDcKEP3UNgymKElHcCjMjbG7uY2xRXmJEdOfqpnCrcvWc9Hx1Sw8axa79rTS5k52Vha52VkYkJ8T4+pzDyfLjKbWNr0BTWQQUoDop/2Zqnk4OWJyKU+v3Uz1mELe27mHvOysxLxHE0rzyc+JkZ8TS3psLCue3r1KS0QGB/2f2U/pnAbc3dnT2pZY3t3cSmNz19nN29qdlra+TQ+9p7Wt1xcetacpwGUFDcelBfGg8JGjKhOzqGZnqQuqyFCmANFP6SxB/OSB1zjoe/exu7mV3zz+BodceT8HX3kf977UOVXFRb99lpnf/UvK52zYsYeDvncfNzyxLun2q5as2t9sA1AzNd52MGdqGU8uPJX/fe5hib9NTAFCZEhTgOindL7r5eZn1wOws6m1S9/+B1Z2znz62Jr3+nTOt4NBazc++UbSdzf/5vE3UjrPuOK8vW7/5vyDuO2L8/jS+2cwaXQBObGsxItwVIIQGdoiDRBmtsDMVptZrZktTLL9p2b2QvB5zcy2hra1hbYtjjKf/bE/VUxNLW1s2NbEu9ub2LCtKdG4u2lXMw07OqfG3rkn2G9HUyJty65mdje38t7OPTS1tPHujvjxu/a0sr2phebWdnbtaU28TnP95kZO+4+/8862Rt7e2kjdlt28sy31Ec+frJmyz33mTivvUlo4vLIUgAPGFaf8PSIy+ETWSG1mMeA64AygDlhqZouDt8gB4O6Xh/b/KjA7dIpGdz8qqvztr/3pxTTrX+5Lmn7Wzx/rsv7gqo08uGpjl7TZP3ygz99Xv7WReT/6W5+P681Zh03gL69s6HX7J2umcPTUcg4YV5S27xSRgRdlL6a5QK27rwUws1uAc4i/ZzqZ84HvR5iftEpXI+9g8KvPHI2709zmFOTE2NHUwjdvexGIv+PhiYWncsI18QBz/zfex9QxhfzlleRBLn6MKTiIDANRBohKYH1ovQ44NtmOZjYVmAaEf+bmm9kyoBW4xt3vjiqj/TEcxkEAHD9jDGceOqFHekeAOGRiCZWjCwCoHlPIQRM6q40OqywZmEyKSEYMlnEQ5wG3u3u4NXWqu9eb2XTgb2b2srt3ecO7mV0CXAJQVTWw7wUYiuMgzj5yEp+ZN5U9Le08vPpdfvP4G732NHr2u6excdseDp8cb0949p9PozCv85/LM/98GsX5g+Wfj4hEIcpG6nog3MI5OUhL5jzg5nCCu9cH/10LPELX9omOfa539xp3r6moqEhHnlOWzl5MA+X9B1ZwTHU5J84cy3HTxwC9d0UdV5yfCA4A40ryKQoFiPEl+RTmKkCIDGdRBoilwEwzm2ZmucSDQI/eSGY2CygDngqllZlZXrA8FjiB3tsuMqKptWfX0VS09nGwWzplx3oGg5jepyAivYjsJ6C7t5rZZcD9QAy4wd1XmNkiYJm7dwSL84BbvOuQ34OBX5lZO/Egdk2499NgcNW9/Rtodu1Da9Kck9TlhGZG7agiy9JYBRHpRaR1BO6+BFjSLe3Kbus/SHLck8Cgnux/zcYd/Tru9YZdac5J6sIBomMch0oQItIbjaTup1TaqNvanesffT0xkvn1hp3c+/I7+zgqOuGRzR3zJcWSVDuJiIACRL+lMpL6rufruXrJq/w8qFY6/Sd/jzpbexeKBcfPGENJfjZffN/0zOVHRAY1BQjodcbTvUmlBLG7OT7dxY6mluB7+vw1++2qcw/rXAl9/9iiPF76wZkcMXn0wGdKRIYEBQj69+AOB5V9BZj/9/Rbff+CNBmlrqgi0k8KEHT5YZ2y8Ejq3gbNDYbafQ9f3WDIkIgMGQoQ/RSei6l1EI+q3ra7JdNZEJEhSvUP9K8NYntTa2L5P/66mqryQs4+spK3tzUyujCHPS3trH2vs0vrbUvXJztN5LY2KkCISP8oQNC/KqawXz8Wf/nO7c/V8+L6rUn3+c4dL+3nt/TP8TPG8rMH472oDhyv9zOISOoUIEhf76KX65IHh9789fL3ceD4YtZs3MEZP30UgD9fdiIf/r+PJ/a592sn8uam3Vx603PMrhrNXZeeQGtbO1ctWcVvn1jH9z54MJ87cRrTrugcj3jQ+GLuuPT4xNxJb/zoA5gGxIlIH6kNgm4NuRkQnjBv0uj8LtsKcmLkxrrepuxYVqJhPCeW1ePhP76068R6Cg4i0h8KEINAdlbnbRhTlMerP1yQWC/IjSWWS/JzEsstbcFI6G5zKV1wbBX/9rFBPUuJiAwRqmIiMwPYwrK6hen8nM6gUJATY3sw0G50YWeAaAvmG8/pNlXG1ecqOIhIeqgEkUEdJYLs7hEiJD8nRkVxHgA1U8sS6a2JEkT8WNUiiUi6qQRB5koQE0rj7Q29vbQHIC87i5NmVvA/XzmBI0Iv8OkYe9ExAd/S756emBRQRCQdFCBIXyN1X8bLhRuRs/cSIDoamI+c0nXOpI5G6o6XAI0tykv9y0VEUqAqpgz5908cmVhONuX2jz56OCfNHNvr8ZeeMoMp5QWceEDv+4iI7A+VIBjYKqaDJ5bwl6+f1CUtWQni/LlVnD+3qtfzHDqplMe+c2ra8yci0iHSEoSZLTCz1WZWa2YLk2z/qZm9EHxeM7OtoW0Xmtma4HNhlPkcyCaIZJVJe2uDEBHJlMhKEGYWA64DzgDqgKVmtjj8bml3vzy0/1eB2cFyOfB9oIb483t5cOyWKPLan7mY+itZh6W99WISEcmUKJ9Mc4Fad1/r7s3ALcA5e9n/fODmYPlM4AF33xwEhQeABb0euZ8GsgSRlaQ/qgoQIjIYRRkgKoHwFKZ1QVoPZjYVmAb8rS/HmtklZrbMzJY1NDSkJdNRSzbthabCEJHBaLDUbZwH3O7uferI7+7Xu3uNu9dUVFT0+8sHspFaoUBEhoooA0Q9MCW0PjlIS+Y8OquX+nrs/hvAAKHqJBEZKqIMEEuBmWY2zcxyiQeBxd13MrNZQBnwVCj5fmC+mZWZWRkwP0iLxEDO5pqsDUJEZDCKrBeTu7ea2WXEH+wx4AZ3X2Fmi4Bl7t4RLM4DbvFQVyJ332xmPyQeZAAWufvm6PIa1Zl7UnwQkaEi0oFy7r4EWNIt7cpu6z/o5dgbgBsiy1yGqEFaRIaKwdJInVED2811AL9MRGQ/KEAwwAPlVIIQkSFCAYLMD5QTERmMFCBQI7WISDKazXWA9dZI/ccvHEv5qNwBzo2ISO9SChAWf6p9Gpju7ovMrAqY4O7PRpq7ATKw4yCSpx8/Q+91EJHBJdUqpl8A84hPqAewg/hMrcNDH+LDdRfM6fPp/3He1MSyaphEZKhINUAc6+5fAZoAghlWh019SF/KD6cdPK7P5//yyTMSy2qkFpGhItUA0RK838EBzKwCaI8sVwOsL43U/Xm+h4OCBsqJyFCRaoC4FrgLGGdmVwGPA1dHlqtBrD8lgLb2zgikgXIiMlSk1Ejt7jeZ2XLgNOLV6B9x91WR5mwApdpIXVGc168AEX7n9PSKoj4fLyKSCfsMEEHV0gp3nwW8Gn2WBl4qVUx3Xno8U8oK+1UCGFeSzy2XHMe2xhZOndX3NgwRkUzYZ4Bw9zYzW21mVe7+1kBkaqClUn6YU1W2X99x3PQx+3W8iMhAS3WgXBmwwsyeBXZ1JLr72ZHkaoAN5FxMIiJDRaoB4l8izYWIiAw6qTZS/z3qjGRSVAWIgpwY35p/YDQnFxGJWErdXM1sh5ltDz5NZtZmZttTOG5B0H5Ra2YLe9nnk2a20sxWmNkfQ+ltZvZC8OnxqtLB7IBx8Z5KPzj7ED5/0vQM50ZEpH9SLUEUdywH8zKdAxy3t2OC3k/XAWcAdcBSM1vs7itD+8wErgBOcPctZhbu4tPo7kelfCX7Id0liI6OTrEsTZYrIkNXn59gHnc3cOY+dp0L1Lr7WndvBm4hHljCvgBcF0zdgbu/29f8pEO6J+vrGCoRU3wQkSEs1dlcPxpazQJqCOZl2otKYH1ovQ44tts+BwbnfwKIAT9w9/uCbflmtgxoBa4JglL3fF0CXAJQVVWVyqUMCAvKECpBiMhQlmovpg+HlluBdfQsDfT3+2cCJwOTgUfN7HB33wpMdfd6M5sO/M3MXnb318MHu/v1wPUANTU1/S4G9LeK6dvzD+Qz86ppb3fa3Jn3o4doaes8Wbbm1RCRISzVNojP9uPc9cCU0PrkIC2sDnjG3VuAN8zsNeIBY6m71wffvdbMHgFmA68Tgf5GltzsLEoLchLrpQU5vLezmZrqMlZv3EFVeWF6MigikgGp9mL6P2ZWYmY5ZvaQmTWY2T/s47ClwEwzm2ZmucB5QPfeSHcTLz1gZmOJVzmtNbMyM8sLpZ8ArCQibe3pmZi2Y06+S085gIe+9X4OqyxNy3lFRDIh1Ury+e6+HfgQ8eqlA4B/2tsB7t4KXAbcD6wCbnP3FWa2yMw6RmDfD2wys5XAw8A/ufsm4GBgmZm9GKRfE+79lG6n/+TRfh03uaxrCaE9qKvKiRkzNCmfiAxxqbZBdOz3QeBP7r4tlfcauPsSYEm3tCtDyw58M/iE93kSODzFvGXMWYdN6LLeHhQhstU4LSLDQKoB4h4zexVoBL4cvDBoX72Yhr3uQbKjsTumxmkRGQZS+qnr7guB44GaoEF5F+npxTSsdFQxKUCIyHCQagkCYBJwupnlh9J+n+b8DGnTK4p4uX6bureKyLCQ6kC57xPvbXQI8TaFs4i/dnREBojbvjiP8SV5PdJv/OwxvFS/jfycWAZyJSKSXqm2pn6c+OtGNwRjIo4ERmwfzrnTypk6ZlSP9DFFeZxykN4YJyLDQ6oBotHd24FWMysB3qXrIDgRERlmUm2DWGZmo4FfA8uBncBTkeVKREQyLtWpNi4NFv/LzO4DStz9peiyJSIimZbqVBtmZv9gZle6+zpgq5nNjTZrIiKSSam2QfwCmAecH6zvIP4yIBERGaZSbYM41t3nmNnzAMHb33IjzJeIiGRYqiWIluAVog4QTLWRnilQRURkUEo1QFwL3AWMM7OriA+SuzqyXImISMal2ovpJjNbTnywnAEfcfdVkeZMREQyqi9zMW0EHguOKTCzOe7+XDTZEhGRTEt1LqYfAhcRf+Vnxxs6HTg1mmyJiEimpdoG8Ulghruf7O6nBJ99BgczW2Bmq82s1swW9rLPJ81spZmtMLM/htIvNLM1wefCFPMpIiJpkmoV0yvAaOJzMKUk6PV0HXAGUAcsNbPF4VeHmtlM4ArghKDr7LggvRz4PlBDvKSyPDh2S6rfLyIi+yfVAPEj4HkzewXY05Ho7mf3fghzgVp3XwtgZrcQf8lQ+N3SXwCu63jwu3tHADoTeMDdNwfHPgAsAG5OMb8iIrKfUg0QvwP+DXiZ1Mc/VALrQ+t1wLHd9jkQwMyeAGLAD9z9vl6Orez+BWZ2CXAJQFVVVYrZEhGRVKQaIHa7+7URff9M4i8jmgw8amaHp3qwu18PXA9QU1Pj+9hdRET6INUA8ZiZ/QhYTNcqpr11c62n6zsjJgdpYXXAM8F7rt8ws9eIB4x64kEjfOwjKeZVRETSINUAMTv473GhtH11c10KzDSzacQf+OcBF3Tb527iEwD+1tfy7JkAAA0rSURBVMzGEq9yWku8O+3VZlYW7DefeGO2iIgMkFRHUp/S1xO7e6uZXQbcT7x94QZ3X2Fmi4Bl7r442DbfzFYCbcA/ufsmSIy9WBqcblFHg7WIiAyMvoykBsDM7nH3D6Wyr7svAZZ0S7sytOzAN4NP92NvAG7oa/5ERCQ9Uh0oF9ajN9Fwd+D4okxnQURkwPW5BAE8n/ZcDGLrrvlgprMgIpIRey1BmFmPwQXufnF02RERkcFiX1VMd3csmNkdEedFREQGkX0FCAstT48yIyIiMrjsK0B4L8siIjLM7auR+kgz2068JFEQLBOsu7uXRJo7ERHJmL0GCHePDVRGRERkcOnPOAgRERkBFCBERCQpBQgREUlKAUJERJJSgBARkaQUIEREJCkFCBERSUoBQkREkoo0QJjZAjNbbWa1ZrYwyfaLzKzBzF4IPp8PbWsLpS+OMp8iItJTf94HkRIziwHXAWcAdcBSM1vs7iu77Xqru1+W5BSN7n5UVPkTEZG9i7IEMReodfe17t4M3AKcE+H3iYhIGkUZICqB9aH1OpK/rvRjZvaSmd1uZlNC6flmtszMnjazj0SYTxERSSLTjdR/Bqrd/QjgAeB3oW1T3b0GuAD4mZnN6H6wmV0SBJFlDQ0NA5NjEZERIsoAUQ+ESwSTg7QEd9/k7nuC1f8Gjg5tqw/+uxZ4BJjd/Qvc/Xp3r3H3moqKivTmXkRkhIsyQCwFZprZNDPLBc4DuvRGMrOJodWzgVVBepmZ5QXLY4ETgO6N2yIiEqHIejG5e6uZXQbcD8SAG9x9hZktApa5+2Lga2Z2NtAKbAYuCg4/GPiVmbUTD2LXJOn9JCIiEYosQAC4+xJgSbe0K0PLVwBXJDnuSeDwKPMmIiJ7l+lGahERGaQUIEREJCkFCBERSUoBQkREklKAEBGRpBQgREQkKQUIERFJSgFCRESSUoBIoiQ/0vGDIiJDggKEiIgkpQAhIiJJKUCIiEhSChAiIpKUAoSIiCSlACEiIkmpP2cvfnfxXCaXFWQ6GyIiGaMAkcQvPn00J84cm+lsiIhkVKRVTGa2wMxWm1mtmS1Msv0iM2swsxeCz+dD2y40szXB58Io89mdgoOISIQlCDOLAdcBZwB1wFIzW5zk3dK3uvtl3Y4tB74P1AAOLA+O3RJVfkVEpKsoSxBzgVp3X+vuzcAtwDkpHnsm8IC7bw6CwgPAgojyKSIiSUQZICqB9aH1uiCtu4+Z2UtmdruZTenLsWZ2iZktM7NlDQ0N6cq3iIiQ+W6ufwaq3f0I4qWE3/XlYHe/3t1r3L2moqIikgyKiIxUUQaIemBKaH1ykJbg7pvcfU+w+t/A0akeKyIi0YoyQCwFZprZNDPLBc4DFod3MLOJodWzgVXB8v3AfDMrM7MyYH6QJiIiAySyXkzu3mpmlxF/sMeAG9x9hZktApa5+2Lga2Z2NtAKbAYuCo7dbGY/JB5kABa5++aI8hnFaUVEhrxIB8q5+xJgSbe0K0PLVwBX9HLsDcANUeYv/j1Rf4OIyNCU6UZqEREZpEZ8gFABQkQkOQUI1TGJiCSlAJHpDIiIDFIjPkCIiEhyIz5AqIZJRCQ5BQhVMomIJKUAofggIpLUiA8QIiKSnAKEiIgkNeIDhKqYRESSU4BQI7WISFIjPkCIiEhyIz5AqIpJRCQ5BYhMZ0BEZJBSgFARQkQkqUgDhJktMLPVZlZrZgv3st/HzMzNrCZYrzazRjN7Ifj8V5T5FBGRniJ7o5yZxYDrgDOAOmCpmS1295Xd9isGvg480+0Ur7v7UVHlr4PKDyIiyUVZgpgL1Lr7WndvBm4Bzkmy3w+BfwOaIsxLr1TDJCKSXJQBohJYH1qvC9ISzGwOMMXd701y/DQze97M/m5mJyX7AjO7xMyWmdmyhoaG/uVSAUJEJKmMNVKbWRbwE+BbSTa/A1S5+2zgm8Afzayk+07ufr2717h7TUVFRbQZFhEZYaIMEPXAlND65CCtQzFwGPCIma0DjgMWm1mNu+9x900A7r4ceB04MIpMaiS1iEhyUQaIpcBMM5tmZrnAecDijo3uvs3dx7p7tbtXA08DZ7v7MjOrCBq5MbPpwExgbRSZVBuEiEhykfVicvdWM7sMuB+IATe4+wozWwQsc/fFezn8fcAiM2sB2oEvufvmSPIZxUlFRIaByAIEgLsvAZZ0S7uyl31PDi3fAdwRZd5ERGTvNJK6Wx3TgkMnZCgnIiKDiwJEt/WLTqjORDZERAadER8gcrOzOHhiCYW5MT5VM4VDJ/XoTSsiMiJF2gYxFJTk5/CXrycdhyciMqKN+BKEiIgkpwAhIiJJKUCIiEhSChAiIpKUAoSIiCSlACEiIkkpQIiISFIKECIikpR1n4toqDKzBuDN/TjFWOC9NGVnqNA1jwy65pGhv9c81d2TvnFt2ASI/WVmy9y9JtP5GEi65pFB1zwyRHHNqmISEZGkFCBERCQpBYhO12c6Axmgax4ZdM0jQ9qvWW0QIiKSlEoQIiKSlAKEiIgkNeIDhJktMLPVZlZrZgsznZ90MbMpZvawma00sxVm9vUgvdzMHjCzNcF/y4J0M7Nrg7/DS2Y2J7NX0H9mFjOz583snmB9mpk9E1zbrWaWG6TnBeu1wfbqTOa7v8xstJndbmavmtkqM5s33O+zmV0e/Lt+xcxuNrP84XafzewGM3vXzF4JpfX5vprZhcH+a8zswr7kYUQHCDOLAdcBZwGHAOeb2SGZzVXatALfcvdDgOOArwTXthB4yN1nAg8F6xD/G8wMPpcAvxz4LKfN14FVofV/A37q7gcAW4DPBemfA7YE6T8N9huKfg7c5+6zgCOJX/uwvc9mVgl8Dahx98OAGHAew+8+3wgs6JbWp/tqZuXA94FjgbnA9zuCSkrcfcR+gHnA/aH1K4ArMp2viK71f4AzgNXAxCBtIrA6WP4VcH5o/8R+Q+kDTA7+xzkVuAcw4qNLs7vfc+B+YF6wnB3sZ5m+hj5ebynwRvd8D+f7DFQC64Hy4L7dA5w5HO8zUA280t/7CpwP/CqU3mW/fX1GdAmCzn9oHeqCtGElKFLPBp4Bxrv7O8GmDcD4YHm4/C1+BnwHaA/WxwBb3b01WA9fV+Kag+3bgv2HkmlAA/DboFrtv81sFMP4Prt7PfDvwFvAO8Tv23KG933u0Nf7ul/3e6QHiGHPzIqAO4BvuPv28DaP/6QYNv2czexDwLvuvjzTeRlA2cAc4JfuPhvYRWe1AzAs73MZcA7x4DgJGEXPqphhbyDu60gPEPXAlND65CBtWDCzHOLB4SZ3vzNI3mhmE4PtE4F3g/Th8Lc4ATjbzNYBtxCvZvo5MNrMsoN9wteVuOZgeymwaSAznAZ1QJ27PxOs3048YAzn+3w68Ia7N7h7C3An8Xs/nO9zh77e1/263yM9QCwFZga9H3KJN3QtznCe0sLMDPgNsMrdfxLatBjo6MlwIfG2iY70fwx6QxwHbAsVZYcEd7/C3Se7ezXxe/k3d/808DDw8WC37tfc8bf4eLD/kPql7e4bgPVmdlCQdBqwkmF8n4lXLR1nZoXBv/OOax629zmkr/f1fmC+mZUFJa/5QVpqMt0Ik+kP8AHgNeB14LuZzk8ar+tE4sXPl4AXgs8HiNe9PgSsAR4EyoP9jXiPrteBl4n3EMn4dezH9Z8M3BMsTweeBWqBPwF5QXp+sF4bbJ+e6Xz381qPApYF9/puoGy432fgX4FXgVeAPwB5w+0+AzcTb2NpIV5S/Fx/7itwcXDttcBn+5IHTbUhIiJJjfQqJhER6YUChIiIJKUAISIiSSlAiIhIUgoQIiKSlAKESBJmtjP4b7WZXZDmc/9zt/Un03l+kXRRgBDZu2qgTwEiNJq3N10ChLsf38c8iQwIBQiRvbsGOMnMXgjeQRAzsx+b2dJg3v0vApjZyWb2mJktJj6qFzO728yWB+8tuCRIuwYoCM53U5DWUVqx4NyvmNnLZvap0Lkfsc53PtwUjCAWidS+fumIjHQLgW+7+4cAggf9Nnc/xszygCfM7K/BvnOAw9z9jWD9YnffbGYFwFIzu8PdF5rZZe5+VJLv+ijxUdFHAmODYx4Nts0GDgXeBp4gPvfQ4+m/XJFOKkGI9M184nPevEB8+vQxxF/SAvBsKDgAfM3MXgSeJj5h2kz27kTgZndvc/eNwN+BY0LnrnP3duLTplSn5WpE9kIlCJG+MeCr7t5lwjMzO5n4VNvh9dOJv6hmt5k9QnxOoP7aE1puQ//vygBQCUJk73YAxaH1+4EvB1OpY2YHBi/o6a6U+Gsud5vZLOKvfe3Q0nF8N48BnwraOSqA9xGfXE4kI/QrRGTvXgLagqqiG4m/X6IaeC5oKG4APpLkuPuAL5nZKuKvf3w6tO164CUze87j05F3uIv4qzJfJD4T73fcfUMQYEQGnGZzFRGRpFTFJCIiSSlAiIhIUgoQIiKSlAKEiIgkpQAhIiJJKUCIiEhSChAiIpLU/wfiknkh0JrbMgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "np.random.seed(0)\n",
    "def train(X, y,\n",
    "          predict=predict):\n",
    "    M = np.column_stack([X, np.ones(X.shape[0])])\n",
    "    weights = np.random.normal(size=X.shape[1] + 1)\n",
    "    f_measures = []\n",
    "    for k in range(1, 1000):\n",
    "        y_pred = linear_classifier(X, weights)\n",
    "        f_measures.append(f1_score(y_pred, y))\n",
    "\n",
    "        for i, actual in enumerate(y):\n",
    "            predicted = predict(M[i], weights)\n",
    "            bias_shift = get_bias_shift(predicted, actual)\n",
    "            weights -=  bias_shift * M[i] / k\n",
    "    \n",
    "    return weights, f_measures\n",
    "\n",
    "weights, f_measures = train(X, y)\n",
    "print(f'The f-measure after 1000 iterations is {f_measures[-1]:.2f}')\n",
    "plt.plot(range(len(f_measures)), f_measures)\n",
    "plt.xlabel('Iteration')\n",
    "plt.ylabel('F-measure')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "Our gradual weight-shift reduction was successful. The f-measure converges to a steady value of 0.82. We achieved convergence using a **Perceptron training algorithm**. Through repetition, the Perceptron training algorithm will eventually converge to a steady f-measure. However, that f-measure will not necessarily be optimal. For instance, our Perceptron converged to an f-measure of 0.82.  The level of performance doesn't match our initial result of 0.97. Our new decision boundary doesn't separate the data as well as our old decision boundary. Lets check how the two boundaries visually compare.\n",
    "\n",
    "**Listing 21. 18. Comparing new and old decision boundaries**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "inches_coef, lbs_coef, bias = weights\n",
    "def new_boundary(inches): \n",
    "    return -(inches_coef * inches + bias) / lbs_coef\n",
    "\n",
    "plt.plot(X[:,0], new_boundary(X[:,0]), color='k', linestyle='--', \n",
    "         label='Trained Boundary', linewidth=2)\n",
    "plt.plot(X[:,0], boundary(X[:,0]), color='k', label='Initial Boundary')\n",
    "plot_customers(X, y)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Our linear boundary is inferior to our initial linear boundary. Our training is hindered by large, fluctuating features in matrix `X`. We can limit this impediment through a process called **standardization**, in which `X` is adjusted to equal `(X - X.mean(axis=0)) / X.std(axis=0)`.\n",
    "\n",
    "### 21.2.1 Improving Linear Classification with Logistic Regression Improving Perceptron Performance through Standardization \n",
    "Our training lacks all nuance because the coefficient shifts are way too high. However, we can lower these shifts by lowering column means in matrix `X`. Additionally, we’ll need to lower the dispersion in the matrix. To start, lets print the current values of `X.mean(axis=0)` and `X.std(axis=0)`.\n",
    "\n",
    "**Listing 21. 19. Printing feature means and standard deviations**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mean values: [ 68.95 146.56]\n",
      "STD values: [ 5.2  23.26]\n"
     ]
    }
   ],
   "source": [
    "means = X.mean(axis=0)\n",
    "stds = X.std(axis=0)\n",
    "print(f\"Mean values: {np.round(means, 2)}\")\n",
    "print(f\"STD values: {np.round(stds, 2)}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The feature means and standard deviations are relatively high. We can shift the means to zero by subtracting `means` from `X`. Additionally, we can shift the standard deviations to 1.0 by running `(X - means) / stds`. This simple process is called **standardization**.\n",
    "\n",
    "**Listing 21. 20. Standardizing the feature matrix**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "def standardize(X):\n",
    "    return (X - means) / stds\n",
    "\n",
    "X_s = standardize(X)\n",
    "assert np.allclose(X_s.mean(axis=0), 0)\n",
    "assert np.allclose(X_s.std(axis=0), 1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We'll now check whether training on the standardized feature matrix improves our results.\n",
    "\n",
    "**Listing 21. 21. Training on the standardized feature matrix**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After standardization, the f-measure is 0.98\n"
     ]
    },
    {
     "data": {
      "image/png": "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3DhatGgRtjwNGjRgw4YN1KxZs9z2WrVqkZycTFFREZMmTaJfv35hX88f3bt3Z/r06bRvH3ZDhbBQAxAAf0rSqh1B7bTaPvvt20k/tMoaGvzuYMZ/Mp6+zfsye93skDKEAmUfKUokycjIYO3atQBMmDCBqlWrcu+995baxxiDMYakJN/OiJdffjnqcgJ89tln1KxZk40bN3L11VdH3QAES2FhIZUqRV5dqwvIJmXdMqM+GlXKz19kigDXSPvwicPlVuGy61/35+LJO5TH7HWzGdpuaCnXzcjOIy2bowVzfuX0R0QsX7NmnerxOGvWLL/7hsP27dtp1aoVgwYNonXr1vz4448MHz6czp0707p1ax5++OGSfbt3787atWspLCykZs2ajBs3jnbt2tGtWzd+/vlnAPbu3cuAAQPo3LkzXbp04csvvwRg37599OnTh9atW3P77bdjJ+Hl8OHD1KpVq+Tz448/znnnncd5553HtGnTSuT3HrlPnjyZRx99tETecePG0aVLF1q0aMEXX3wBwNGjRxk4cCAtW7bkuuuuK5WWa3XvDRo0YNy4cXTo0IEnn3yS888/v+S73NxcunTpYv+hW6AGwAa+irlm5sy0HIUXFBdQrXK1kPzrgWYJRwuOMn/b/FJFWjOunFHOn5+RlhHS+RUlFmzevJm7776bTZs2Ub9+fSZPnkxOTg7r1q1j0aJFbNq0qdwxhw4d4uKLL2bdunV069aNl156CYA777yT+++/n5ycHN566y1uvfVWAP7xj39wySWXsHHjRvr27csPP/xgKU+PHj1o3bo1vXv3LlHmX331FdnZ2Xz99desXLmSGTNmsH79+oD3Zoxh1apVTJkypUShT58+nVq1apGbm8sDDzzAmjVrSvb3d++/+93vWLNmDX/7299IS0tjw4YNgGtmNGxY+EuzqwvIBr7cMoEycQ4eO8j++/cHfS07RWC+RvFlXVVWjdA0yyexsZv2PXz4cIYPt64UD5dmzZrRufOprMTXX3+dF198kcLCQn744Qc2bdpEq1atSh2TlpbGH//4RwA6derEZ599BsDixYvZsmVLyX6//PILx44dY/ny5cyfPx+A/v37U61aNUt5PC6grVu3cvnll7Nx40Y+//xzrrvuOtLS0gC45ppr+Oyzz7jsssv83tuAAQNKZNy5cycAy5cv5/777wegQ4cOtG7d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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "np.random.seed(0)\n",
    "weights, f_measures = train(X_s, y)\n",
    "print(f'After standardization, the f-measure is {f_measures[-1]:.2f}')\n",
    "\n",
    "def plot_boundary(weights):\n",
    "    a, b, c = weights\n",
    "    new_boundary = lambda x: -(a * x + c) / b\n",
    "    plt.plot(X_s[:,0], new_boundary(X_s[:,0]), color='k', linestyle='--', \n",
    "         label='Trained Boundary', linewidth=2)\n",
    "    plot_customers(X_s, y, xlabel='Standardized Inches', \n",
    "                   ylabel='Standardized Pounds')\n",
    "    plt.legend()\n",
    "    plt.show()\n",
    "    \n",
    "plot_boundary(weights)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "1/0"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We achieved improvement in performance through standardization. However, our trained classifier now requires all input data to be standardized prior to classification. Hence, given any new data `d`, we will need to classify that data by running `linear_classifier(standardize(d), weights)`. \n",
    "\n",
    "**Listing 21. 22. Standardizing new classifier inputs**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0 1]\n"
     ]
    }
   ],
   "source": [
    "new_data = np.array([[63, 110], [76, 199]])\n",
    "predictions = linear_classifier(standardize(new_data), weights)\n",
    "print(predictions)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We’ve standardized our data and achieved a very high level of Perceptron performance. Unfortunately, this optimal f-measure is still not guaranteed by the training algorithm. Trained Perceptron quality can fluctuate, even if the algorithm is run repeatedly on the same training set. \n",
    "\n",
    "**Listing 21. 23. Checking a Perceptron’s training consistency**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The f-measure fell below our baseline of 0.97 in 4 out of 5 training instances\n"
     ]
    }
   ],
   "source": [
    "np.random.seed(0)\n",
    "poor_train_count = sum([train(X_s, y)[1][-1] < 0.97 for _ in range(5)])\n",
    "print(\"The f-measure fell below our baseline of 0.97 in \"\n",
    "      f\"{poor_train_count} out of 5 training instances\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In 80% of instances, the trained model performance falls below the baseline. Our basic perceptron model is clearly flawed. We'll address these flaws in the subsequent subsection using Logistic regression.\n",
    "\n",
    "## 21.3 Improving Linear Classification with Logistic Regression\n",
    "\n",
    "Not all predictions should be treated equally. Sometimes, we are more confident in some predictions over others. \n",
    "Class confidence is determined by the distance from the decision boundary.  It’s also determined by position relative to the boundary.  We can capture both distance and position with **directed distance**. We need a function that rises from 0 to 1.0 as directed distances rises from negative infinity to infinity. Also, the function should equal 0.5 when the distance is 0. Within this book, we have encountered one such function; the cumulative distribution function of the Normal curve.\n",
    "\n",
    "**Listing 21. 24. Measuring uncertainty using stats.norm.cdf**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from scipy import stats\n",
    "z = np.arange(-10, 10, 0.1)\n",
    "assert stats.norm.cdf(0.0) == 0.5\n",
    "plt.plot(z, stats.norm.cdf(z))\n",
    "plt.xlabel('Directed Distance')\n",
    "plt.ylabel('Class 1 Confidence')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can also generate and S-shaped plot using the the **logistic** curve. The logistic function of `z` is `1 / (1 - e ** z)` where `e` is a constant equal to approximately 2.72. \n",
    "\n",
    "**Listing 21. 25. Measuring uncertainty using the logistic curve**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from math import e\n",
    "plt.plot(z, stats.norm.cdf(z), label='CDF')\n",
    "plt.plot(z, 1 / (1 + e ** -z), label='Logistic Curve', linestyle='--')\n",
    "plt.xlabel('Directed Distance')\n",
    "plt.ylabel('Confidence in Class 1')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We use the logistic curve as our measure of uncertainty. Lets utilize the curve to assign _Class 1_ label likelihoods for all our customers. The product `M @ weights` returns the directed distances to the boundary. Hence,  `1 / (1 + e ** -(M @ weights)`, returns the _Class 1_ likelihoods. Below, we’ll plot these likelihoods, along with the binary Perceptron predictions.\n",
    "\n",
    "**Listing 21. 26. Comparing logistic uncertainty to the Perceptron’s predictions**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "M = np.column_stack([X_s, np.ones(X_s.shape[0])])\n",
    "distances = M @ weights\n",
    "likelihoods = 1 / (1 + e ** -distances)\n",
    "plt.scatter(distances, likelihoods, label='Class 1 Likelihood')\n",
    "plt.scatter(distances, distances > 0, \n",
    "            label='Perceptron Prediction', marker='x')\n",
    "\n",
    "plt.xlabel('Directed Distance')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The plotted logistic likelihoods continuously increase with directed distance. In contrast, the Perceptron predictions are brutishly simple. The model is overconfident. It is bound to make mistakes! We can teach the model caution by incorporating the uncertainty that's captured by the logistic curve.\n",
    "\n",
    "**Listing 21. 27. Incorporating uncertainty into training**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYAAAAEICAYAAABWJCMKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO2deXhU5dXAfychQICAEJAIFAKIrMoWRURFQSqoiIKgiJhY/RA33KrFQovawmddWtz7YUWCRqRUVFDcQKmoUAQNskUQZJNFRBpBwpLk/f6YhUmYO3NnvZPM+T3PPMzcufe+Zy5wzvuec95zxBiDoiiKknykOC2AoiiK4gxqABRFUZIUNQCKoihJihoARVGUJEUNgKIoSpKiBkBRFCVJccwAiEhtEVkuIqtEZK2IPOSULIqiKMmIOLUPQEQEqGuMOSgiacCnwJ3GmGVW1zRu3NhkZ2fHS0RFUZRqwcqVK380xjSpfLyGE8IAGJflOej+mOZ+BbRG2dnZrFixItaiKYqiVCtEZKu/447GAEQkVUQKgR+AD40x/3FSHkVRlGTCUQNgjCkzxnQDWgBniUiXyueIyBgRWSEiK/bu3Rt/IRVFUaopCZEFZIz5L/AxMNDPd9OMMTnGmJwmTU5wYSmKoihh4mQWUBMROcn9Ph0YABQ5JY+iKEqy4VgQGDgFyBeRVFyG6J/GmLcdlEdRFCWpcDIL6Gugu1PjK4qiJDsJEQNQFEVR4k9SGoDnn3+eefPmcezYMadFURRFcYykMwC//PIL999/P0OGDKF58+bcfffdFBYWOi2WoihK3Ek6A1BeXs6kSZPo1KkTe/fuZerUqXTv3p1u3brxt7/9jZ9++slpERVFUeKCY7WAwiEnJ8dEqxSEMYaVK1cyY8YMZs2a5VX8a9eupVOnTlEZQ1EUJREQkZXGmJzKx51MA3UUESEnJ4ecnByeeOIJ3n77bT777LMKyn/QoEGceuqp5OXl0aNHD1z16xRFUaoHSbsCCMaGDRto376993Pnzp3Jy8tj1KhRnHLKKXGRQVEUJRpYrQCSLgZgl9NOO42vvvqKO++8k8aNG7N27Vruu+8+WrRowaWXXsrWrX6L6ymKolQZ1AAEoFu3bkydOpXvv/+eN998kyuuuIKUlBQ++eQTGjdu7D1v27ZtVKWVlKIoCqgBsEXNmjUZMmQIb7zxBjt37mTu3LnUrVsXgJKSEk4//XQ6derEX/7yF77//nuHpVUURbGHGoAQadKkCQMGDPB+/uabb0hPT6eoqIjx48fTsmVLLr74YmbNmkVJSYmDkiqKogRGDUCEdOvWje3btzN//nyuuuoqatSowQcffMC1115LVlYWu3btclpERVEcZs+eApYuzWbx4hSWLs1mz54Cp0UC1ABEhbS0NC677DLmzJnDrl27ePbZZznzzDNp06ZNhYyhF198kW3btjkoqaIo8WbPngK++WYMR45sBQxHjmzlm2/GJIQR0DTQGPLzzz9Tv359wOUq6tChAyJCv379yMvL48orr/TGEhRFqZ4sXZrtVv4VqVWrFb17b4mLDJoG6gAe5Q+uEhRXX301NWvWZNGiRYwePZqsrCxuvPFGPvnkE80iUpRqypEj/lf9VsfjiRqAONGxY0dee+01du3axd///nfOPvtsDh48yPTp0xk0aBAHDx50WkRFUWJArVotQzoeT9QAxJmGDRty8803s3TpUoqKinjggQe4/fbbycjIAODw4cMMHjyY/Px8NQqKUg1o02YyKSl1KhxLSalDmzaTHZLoOBoDSDDmzJnDiBEjAKhbty5XXXUVubm59O3bl5QUtdeKUhXZs6eAzZsncOTINmrVakmbNpNp2nRU3Ma3igGoAUgwiouLmTNnDjNmzOCzzz7zHm/VqhW5ublMnDiRtLQ0ByVUFKWqoUHgKkKDBg246aab+PTTT9mwYQMTJ06kZcuWbN26lblz51KjxvECrocOHXJQUkVRfEnUXP9A6AqgClBeXs7ixYs5cuQIgwYNAuDbb7+la9euXHnlleTl5XHhhReSmprqsKSKkpx4cv3Ly49PylJS6tC+/bS4unqs0BVAFSYlJYV+/fp5lT/A4sWLOXToEAUFBQwYMIDs7GwmTJjAhg0bHJRUUZKTzZsnVFD+AOXlh9i8eYJDEtlDDUAV5aabbmLTpk08+OCDtG7dmh07djBlyhTat2/PRRddpPsKFCWOJHKufyDUAFRh2rRpw6RJk/j222/597//zQ033EC9evVo2rSpt3vZ0aNHef/99ykrK3NYWkWpviRyrn8g1ABUA1JSUjj//POZPn06u3fv5rHHHvN+t2DBAgYOHEjLli353e9+x7p16xyUVFGqJ4mc6x8INQDVjLp169KsWTPv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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "np.random.seed(0)\n",
    "def logistic_predict(v, weights): return 1 / (1 + e ** -(weights @ v))\n",
    "def train_logistic(X, y): return train(X, y, predict=logistic_predict)\n",
    "logistic_weights = train_logistic(X_s, y)[0]\n",
    "plot_boundary(logistic_weights)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The learned decision boundary is nearly identical to that of the Perceptron output. However, our `train_logistic` function is subtly different. It produces more consistent results than the Perceptron.\n",
    "\n",
    "**Listing 21. 28. Checking the logistic model’s training consistency**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The f-measure fell below our baseline of 0.97 in 0 out of 5 training instances\n"
     ]
    }
   ],
   "source": [
    "np.random.seed(0)\n",
    "poor_train_count = sum([train_logistic(X_s, y)[1][-1] < 0.97\n",
    "                        for _ in range(5)])\n",
    "print(\"The f-measure fell below our baseline of 0.97 in \"\n",
    "      f\"{poor_train_count} out of 5 training instances\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The trained model does not fall below the baseline in any of the runs. Hence, it is superior to the Perceptron. This superior model is called a **Logistic regression classifier**.\n",
    "\n",
    "## 21.3.1 Running Logistic Regression on More than Two Features\n",
    "\n",
    "Our `train_logistic` function can process any number of input features. We’ll prove this by adding a third feature; customer waist circumference.\n",
    "\n",
    "**Listing 21. 29. Training a three-feature Logistic regression model**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Our trained model has the following weights:\n",
      "[ 1.65  2.91  1.26 -4.08]\n",
      "\n",
      "The f-measure is 0.97\n"
     ]
    }
   ],
   "source": [
    "np.random.seed(0)\n",
    "random_fluctuations = np.random.normal(size=X.shape[0], scale=0.1)\n",
    "waist = 0.45 * X[:,0] + random_fluctuations\n",
    "X_w_waist =  np.column_stack([X_s, (waist - waist.mean()) / waist.std()])\n",
    "weights, f_measures = train_logistic(X_w_waist, y)\n",
    "\n",
    "print(\"Our trained model has the following weights:\")\n",
    "print(np.round(weights, 2))\n",
    "print(f'\\nThe f-measure is {f_measures[-1]:.2f}')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 21. 3 Training Linear Classifiers Using Scikit-Learn\n",
    "\n",
    "Scikit-Learn has a built-in class  Logistic regression class.\n",
    "\n",
    "**Listing 21. 31. Initializing Scikit-Learn’s `LogisticRegression` classifier**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LogisticRegression"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next, we'll initialize the classifier object `clf`.\n",
    "\n",
    "**Listing 21. 32. Initializing Scikit-Learn's `LogisticRegression` classifier**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "clf = LogisticRegression()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As discussed in Section Twenty, we can train any `clf` by running `clf.predict(X, y)`.\n",
    "\n",
    "**Listing 21. 33. Training Scikit-Learn’s LogisticRegression classifier**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LogisticRegression()"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clf.fit(X_s, y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The trained model's coefficients are stored within the `clf.coef_` attribute. Meanwhile, the bias must be accessed separately, using the `clf.intercept_` attribute. Combining these attributes will give us the full weight vector, which can be visualized as a decision boundary.\n",
    "\n",
    "**Listing 21. 33. Accessing the trained decision boundary**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The coefficients equal [[2.22 3.22]]\n",
      "The bias equals [-3.96]\n"
     ]
    },
    {
     "data": {
      "image/png": "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tWvH0KFDy4XlWl17s2bNuP/+++natStTp07l4osvdn+3ceNGunfvbv+mW2GMqTSvbt26mcrCy2tfNjUm1zBMxP2qMbmGGfvOWJP590wjE8Vk/j3TvLz25ViLqlRhNmzYUO4zYPn617/+5R73r3/9y+fYQHnooYfMlClTjDHGbN261YiI+fLLL93fFxYWGmOMKS4uNr179zbr1683xhjTq1cv8/XXX5vi4mIDmIULFxpjjLn77rvNY489Zowx5vrrrzfLly83xhizY8cO06FDB2OMMWPHjjWTJ082xhgzf/58A5iDBw+eIVvTpk1Nx44dTfv27U16erp57733jDHGrFixwnTq1MkcP37cHD582LRt29asXbvWbN261XTu3Nm9/2OPPWYefvhht7zjx483xhiTl5dnrrrqKmOMMU888YT5wx/+YIwx5quvvjJJSUnm66+/9nntTZs2NVOnTnWfp0+fPmbdunXGGGPuu+8+M336dK/3uuLv3BhjgJXGy5yaEEXdYoFVI5jnVz7vjvPX7Fwl2hibYd+jR49m9GjrhkGh0qpVK7KyTkclzp07lxdeeIGSkhJ++OEHNmzYQPv27cvtk56ezsCBAwHo1q0bH3/8MQCLFy8u5yc4ePAgRUVFLFu2jIULFwKQnZ1N7dq1LeX5+OOPqVevHlu2bOGqq65i/fr1fPLJJwwdOpT09HQAcnJy+Pjjj7nyyit9XtuQIUPcMu7cuROAZcuWMX78eAC6du1Khw4dbF378OHD3eN+//vfM2vWLJ544gneeOMNvv76a59y2EEVQISwitSpmOQVaBtHRakK1KxZ0/1+69atTJs2jS+++IJ69epx4403es1cdvkNAJKTk912cWMMX3zxRbnvg+WCCy6gQYMGbNq0yXJMSkpKOb/FiRMnSEk5PZWmpaWdIaMV/q7d8z4NGzaMRx99lF69etGzZ0/q1asX8PVVJGF9AHbs86HY8AOJAtIm5Uoic/jwYWrXrk2dOnXYu3cv77//fkD7X3HFFTz33HPuz67omr59+/LKK68AsGDBAo4cOeL3WD/++CO7d++mefPm9OnTh7feeouioiKOHj1KXl4effr0oUmTJvzwww8cPHiQEydO8O677/o9rqcsa9asYf369QFfe40aNbj88su5/fbbufnmm/2e0w4JuQKw06g9mGburv1c5SEq1uOxqs+j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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "coefficients = clf.coef_\n",
    "bias = clf.intercept_\n",
    "print(f\"The coefficients equal {np.round(coefficients, 2)}\")\n",
    "print(f\"The bias equals {np.round(bias, 2)}\")    \n",
    "plot_boundary(np.hstack([clf.coef_[0], clf.intercept_]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can make predictions on new data by executing `clf.predict`. As the reminder, the inputted data must be standardized for our predictions to make sense.\n",
    "\n",
    "**Listing 21. 34. Predicting classes with the linear classifier**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0 1]\n"
     ]
    }
   ],
   "source": [
    "new_data = np.array([[63, 110], [76, 199]])\n",
    "predictions = clf.predict(standardize(new_data))\n",
    "print(predictions)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Additionally, we can output the class-label probabilities by running `clf.predict_proba`. These probabilities represent the class-label uncertainties generated by the logistic curve.\n",
    "\n",
    "**Listing 21. 35. Outputting the uncertainty associated with each class**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[9.99990471e-01 9.52928118e-06]\n",
      " [1.80480919e-03 9.98195191e-01]]\n"
     ]
    }
   ],
   "source": [
    "probabilities = clf.predict_proba(standardize(new_data))\n",
    "print(probabilities)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We've relied on a custom`standardize` function to standardize our input data. Scikit-Learn includes its own standardization class called `StandardScaler`.\n",
    "\n",
    "**Listing 21. 36. Initializing Scikit-Learn’s standardization class**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import StandardScaler\n",
    "standard_scaler = StandardScaler()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Running `standard_scaler.fit_transform(X)` will return a standardized matrix.\n",
    "\n",
    "**Listing 21. 37. Standardizing training data using Scikit-Learn**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_transformed = standard_scaler.fit_transform(X)\n",
    "assert np.allclose(X_transformed.mean(axis=0), 0)\n",
    "assert np.allclose(X_transformed.std(axis=0), 1)\n",
    "assert np.allclose(X_transformed, X_s)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `standard_scaler` object has learned the means and standard deviations associated with our feature matrix. Hence, it can now standardize data based on these statistics. \n",
    "\n",
    "**Listing 21. 38. Standardizing new data using Scikit-Learn**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_transformed = standard_scaler.transform(new_data)\n",
    "assert np.array_equal(clf.predict(data_transformed), predictions)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "By combining the `LogisticRegression` and `StandardScaler` classes, we can train Logistic models on complex inputs. In the next subsection, we'll train a model that can process more than two features and can predict more than two class labels.\n",
    "\n",
    "### 21.4.1 Training Multi-Class Linear Models\n",
    "\n",
    "We’ve shown how linear classifiers can find decision boundaries that separate two classes of data. However, many problems require us to differentiate between more than two classes. We'll now attempt to train a classifier that can distinguish between multiple classes of wine. First, we'll load the appropriate data from Scikit-Learn.\n",
    "\n",
    "**Listing 21. 39. Importing Scikit-Learn’s wine dataset**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The wine dataset contains 3 classes of wine:\n",
      "['class_0' 'class_1' 'class_2']\n",
      "\n",
      "It contains the 13 features:\n",
      "['alcohol', 'malic_acid', 'ash', 'alcalinity_of_ash', 'magnesium', 'total_phenols', 'flavanoids', 'nonflavanoid_phenols', 'proanthocyanins', 'color_intensity', 'hue', 'od280/od315_of_diluted_wines', 'proline']\n"
     ]
    }
   ],
   "source": [
    "from sklearn.datasets import load_wine\n",
    "data = load_wine()\n",
    "feature_names = data.feature_names\n",
    "num_classes = len(data.target_names)\n",
    "num_features = len(data.feature_names)\n",
    "print(f\"The wine dataset contains {num_classes} classes of wine:\")\n",
    "print(data.target_names)\n",
    "print(f\"\\nIt contains the {num_features} features:\")\n",
    "print(data.feature_names)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If we train our Logistic regression pipeline on the three-class wine data, we'll obtain three decision boundaries. Thee three biases associated with these bounaderies will be stored in the `clf.intercept_` array. \n",
    "\n",
    "**Listing 21. 40. Training a multi-class wine predictor**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "We trained 3 decision boundaries, corresponding to the 3 classes of wine.\n",
      "\n",
      "The class_0 decision boundary has a bias of 0.41\n",
      "The class_1 decision boundary has a bias of 0.70\n",
      "The class_2 decision boundary has a bias of -1.12\n"
     ]
    }
   ],
   "source": [
    "X, y = load_wine(return_X_y=True)\n",
    "clf.fit(standard_scaler.fit_transform(X), y)\n",
    "biases = clf.intercept_\n",
    "\n",
    "print(f\"We trained {biases.size} decision boundaries, corresponding to \"\n",
    "      f\"the {num_classes} classes of wine.\\n\")\n",
    "\n",
    "for i, bias in enumerate(biases):\n",
    "    label = data.target_names[i]\n",
    "    print(f\"The {label} decision boundary has a bias of {bias:0.2f}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The coefficients across the three different boundaries can be stored in a 3-by-13 matrix. In Scikit-Learn, that matrix is contained within `clf.coef_` Each _ith_ row of the matrix corresponds to the boundary of _Class i_. Meanwhile, each _jth_ column corresponds to the _jth_ feature coefficient. We can visiualize these relationships using a heatmap.\n",
    "\n",
    "**Listing 21. 41. Displaying a transpose of the coefficient matrix**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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f/7zn0RGRgIwevRodu/ezerVqxk6dCg9evTAxcWFnTt3kpmZSbt27XjppZdqPR47Ozveffddxo4dy4IFC1i/fj2dOnUiMzOTXbt2YTKZmDBhAtddd12tnyGSlJLHbaMXM/HBHlzfP4yIVn7k5BSx4odY3vt4G/Ena3ZY09KVhzgQm8YDo7tyTbcmtA73JT+/hC3bEvhq6X5+WBd36UZEREREGoCkvGJu/Tqaid2bc0OoLxG+buQUl7L8SArv7TxB/NlCm9pp7euGx++Zqo2MDnQP9rzo/U4OCiCJyOVhZ7bltBURqRcKCgr49NNPWbVqFadOncLR0ZGwsDBuu+027rrrLq699lry8vLYvHkzCxYs4IMPPuDxxx9nwoQJ5W2YzWaWLVvG4sWLiY2NxWQy0bp1a0aNGsWtt95a6Xlms5lvv/2WJUuWEBtr2fcxNDSU4cOHM2rUqEoHNG3bto0xY8bQu3dv5s6dW6XvAwcO5NSpU2zcuLE8axYgPT2dTz75hHXr1nHmzBk8PDzo1KkTY8eOpXfv3pXaGD16NNu3b2fBggV0797dps+sVfdZNt0nInIl7Ntm23eZiMiV0uETZfSJyF/b0X/2u9JdqFP+Ef/6056VGjvjT3vWX4GCpiJyVVPQVET+yhQ0FZG/OgVNReSvTkHTy+dqC5pqeb6IiIiIiIiIiEg9pD1N644+WREREREREREREZEKlGkqIiIiIiIiIiJSDynTtO7okxURERERERERERGpQJmmIiIiIiIiIiIi9ZAyTeuOPlkRERERERERERGRCpRpKiIiIiIiIiIiUi8pH7Ku6JMVERERERERERERqUCZpiIiIiIiIiIiIvWQ9jStO/pkRURERERERERERCpQ0FRERERERERERESkAi3PF5GrWtkDna90F0REqvW/49lXugsiIhdVWup8pbsgInJV0/L8uqNPVkRERERERERERKQCZZqKiIiIiIiIiIjUQ3bKh6wz+mRFREREREREREREKlCmqYiIiIiIiIiISD2kPU3rjj5ZERERERERERERkQqUaSoiIiIiIiIiIlIP2dnZXekuNFjKNBURERERERERERGpQJmmIiIiIiIiIiIi9ZD2NK07+mRFREREREREREREKlCmqYiIiBUeRgce69GMQS388Hc1klFQwqaTmczaGc/p3KIatxfm5cJDXZrSO8QL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jh07xoQJE8oDpgBGo5Fp06bRokULduzYwc6dO//IJ1gtO/PFQroiIg2csgBF5K/spRtt2wpCRORKeeGHmh0mKiLyZzsxsf+V7kKdat3zP3/asw5vn2DTfWazmcjISIqKioiJial06j1Ytgzs2LEjjo6OxMTEVNvO3Xffzd69e1m2bBlt27atUv7KK6+wYMECnnvuOcaMGVOzwdhAmaYiIiIiIiIiIiL1keFP/LGRnZ0d4eHhmEwmTpw4UaX8+PHjlJWV0bp164u2c+7QKXt7e6vl566fO/PkctOepiLCk08+WaP7fXx8ePbZZ+uoNyIiIiIiIiJSn/Xt25eYmBh++uknwsPDK5X99NNPgGWrwosJCwvj+PHjbNy4sUqA1WQy8euvvwLQpk2by9jz8xQ0FRFWrFhRo/tDQkIUNBURERERERERq26//XY+/fRTPvnkE6699lo6dOgAwL59+/j0009xdnbmvvvuK78/ISGBkpISAgICcHd3B2DEiBGsW7eOjz76iMjISLp16wZYlve//fbbHD58mFatWnHNNdfUyRgUNBURYmNjr3QXRERERERERKSm7OyudA+satKkCVOnTuWVV17hnnvuKT/Iadu2bZSWlvLmm2/i6+tbfv+4ceM4deoU//73v7n99tsBSybqQw89xOzZsxk5ciRdunTBx8eHgwcPcvr0afz8/Jg5c2a1y/f/KAVNRURERERERERE5LIaOXIkjRs35tNPPyU6Ohqj0UhkZCSPPPIIvXv3tqmNJ554gsjISL788kv27dvH/v37CQgIYNSoUTz88MMEBATUWf8VNBUREREREREREamP/qKZpucMGDCAAQMGXPK+9evX/+E2LrcanH0lIiIiIiIiIiIi0vAp01RERERERERERKQ+UjpkndFHKyIiIiIiIiIiIlKBMk1FRERERERERETqIfNffE/T+kyZpiIiIiIiIiIiIiIVKNNURK5q5j2pV7oLIiLVGnq/45XugojIRb1wxnSluyAicnVTommdUaapiIiIiIiIiIiISAXKNBUREREREREREamPDEo1rSvKNBURERERERERERGpQJmmIiIiIiIiIiIi9ZGdMk3rijJNRURERERERERERCpQpqmIiIiIiIiIiEh9pETTOqNMUxEREREREREREZEKFDQVERERERERERERqUDL80VEREREREREROoj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f/458fHxHDp0CH9/f4YMGcLjjz/Ol19+yYIFC1i7di2jRo0CoEuXLnz11Vd8+umn7Ny5k9jYWFq1asV7773H/PnzOXXqFG5ubpc8JoPBwEcffcR3333H4sWLOXDgABaLhaCgIB5++GHGjBlTYef6yMhIFi5cyOzZs9m1axdr1qzB1dWVrl27MmbMmAtuKGVra8vcuXOZMWMGv/zyCxs2bCA4OJi///3vPPTQQ0qaylWVZTLzwZ6jfLDnaK36f3F+V9YrFQ+smxx8vPcYH+9VRamIgJ2rK/4PDsH/wSG16u83YBB+AwZdsXgA9vV8CRw5ttb9AWwMBjy73IZnl9su6jwRufZdC5+XqtL/x601tluAZcfPsEwvoUXkEthYLncrbhG5otLS0sjMzCQwMBBHR8dK7ffeey9xcXHs3LkT5z9sziAXr/PiqKs9BBGRagV46mOaiFzbTmVoWqiIXNu2PtDtag+hToVMX/unXev4hN5/2rWuBdoISuQac/DgQe6++24effRRTCZThbZvv/2Ww4cPc9tttylhKiIiIiIiIiJSRzQ9X+Qa06VLF1q2bMmOHTvo2bMnbdq0wWg0cuTIEY4cOYKvry9vvPHG1R6miIiIiIiIiFxlFm0EVWdUaSpyjTEajcyfP58JEybg7+/Prl272LhxI8XFxYwdO5YffviBhg0bXu1hioiIiIiIiIjcsFRpKnINcnV1Zdy4cYwbN+5qD0VERERERERErlU2qjStK6o0FRERERERERERESlHlaYiIiIiIiIiIiLXI61pWmdUaSoiIiIiIiIiIiJSjipNRURERERERERErkcqNK0zqjQVERERERERERERKUeVpiIiIiIiIiIiItchg8oh64x+tCIiIiIiIiIiIiLlqNJURG5qqWeKr/YQRESqZWdre7WHICJSo9samq72EEREbmo2WtO0zqjSVERERERERERERKQcVZqKiIiIiIiIiIhch1RpWndUaSoiIiIiIiIiIiJSjpKmIiIiIiIiIiIiIuVoer6IiIiIiIiIiMh1yEbz8+uMKk1FREREREREREREylGlqYiIiIiIiIiIyHVIhaZ1R5WmIiIiIiIiIiIiIuWo0lREREREREREROQ6pErTuqNKUxEREREREREREZFyVGkqIiI3NXcHO/6vQwj9wurh62xPen4RGxPT+WT7cU7lFF50vDBP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z4/AwECOHfsnWGQwGJg6dSoPPfQQs2fP5pdffqFZs2YkJyeza9cucnNzeeCBB+jTp08V3pVUJ1Gpmdz3617GtPKll487gbUcSMzMZmV4NJ/uO0VEkvnNma6l8ykZ3LdiLw83r08fXw98nOzIysll34VEloVFszQ0EsUiRGqmyJhU7h77C0+PbEvvm3wJauhGUkomy/8I45P5ezh1znydv5JEXUzlrqd+5tF7WjLgFn8a1HMmLT2LTTvPMOenQ2zZfbbYOeeik7l77C88fHdz+nXzw8/blG0adjqB1VtO8s2Ph0hKUT1TETHxrOPKFwufZd7stfy54W/Cjp3H0cmW3re2YdST/ajfoPZljXfbnR1p3MSbRfM3sm9nGCeOR2Jnb037zo0ZdE8XevZtVUF3IiIChjxza1xFRK7QjBkzmDlzJs8++2yxuqNnzpyhd+/e+Pr6smbNGsBUz3TevHksWbKEiIgI3Nzc6N+/P88++yyjRo1i//79HD16tMg4MTExfPnll6xfv57z58/j5OREQEAAI0eOpF+/fhgM5X/W1nL+5qu/aRGRCpL+rbKMReT6tvmXywuCiYhUNi+7QVU9hQp1Iml5pV3L32lgpV3reqCgqYjUaAqaisj1TEFTEbneKWgqItc7BU2vnZoWNNXyfBERERERERERkWpIO7xXHL23IiIiIiIiIiIiIoUo01RERERERERERKQauowtPeQyKdNUREREREREREREpBBlmoqIiIiIiIiIiFRDN1qi6cqVK5k3bx6hoaFYWFjQtm1bxo4dS6tWrS5rnI0bN/L1119z6NAhsrKyqF+/PrfffjuPP/44NjY25RpDmaYiIiIiIiIiIiJSpWbMmMHzzz/P8ePH6dy5M4GBgWzcuJFhw4axcePGco/z3XffMXr0aHbu3Enz5s3p2rUrsbGxzJgxgwceeICMjIxyjaNMUxEREREREREREakyhw4dYubMmXh7e7Nw4ULq1KkDwIYNGxg7diwTJkxg7dq12NnZlTpObGwsH330Eba2tsyZM4d27doBkJiYyKhRo9i/fz/fffcdo0aNKnNOyjQVERERERERERGphgyGyntVpDlz5gAwbty4goApQM+ePRk8eDAxMTGsXLmyzHF27dpFRkYG3bt3LwiYAjg7O/Poo48CsHPnznLNSUFTERERERERERERqTKbN2/GYDAQ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\n",
      "text/plain": [
       "<Figure size 1440x720 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import seaborn as sns\n",
    "plt.figure(figsize = (20, 10))\n",
    "coefficients = clf.coef_\n",
    "\n",
    "sns.heatmap(coefficients.T, cmap='YlGnBu', annot=True, \n",
    "            xticklabels=[f\"Class {i} Boundary\" for i in range(3)],\n",
    "            yticklabels=data.feature_names) \n",
    "plt.yticks(rotation=0)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 21. 5 Measuring Feature Importance with Coefficients\n",
    "\n",
    "Features can be rated by their coefficients in order to assess their **feature importance**. The feature importance is a score that ranks the usefulness of features during classification. In linear classifiers, the absolute values of the coefficients serve as crude measures of importance. What feature is most useful for correctly detecting a _Class 0_ wine? We can check by sorting the features based on the absolute values of the _Class 0_ coefficients in `clf.coef_[0]`.\n",
    "\n",
    "**Listing 21. 42. Ranking Class 0 features by feature importance**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "proline: 1.08\n",
      "alcalinity_of_ash: -0.84\n",
      "alcohol: 0.81\n",
      "od280/od315_of_diluted_wines: 0.73\n",
      "flavanoids: 0.65\n",
      "ash: 0.47\n",
      "total_phenols: 0.21\n",
      "malic_acid: 0.20\n",
      "nonflavanoid_phenols: -0.20\n",
      "color_intensity: 0.17\n",
      "proanthocyanins: 0.14\n",
      "hue: 0.13\n",
      "magnesium: 0.05\n"
     ]
    }
   ],
   "source": [
    "def rank_features(class_label):\n",
    "    absolute_values = np.abs(clf.coef_[class_label])\n",
    "    for i in np.argsort(absolute_values)[::-1]:\n",
    "        name = data.feature_names[i]\n",
    "        coef = clf.coef_[class_label][i]\n",
    "        print(f\"{name}: {coef:.2f}\")\n",
    "\n",
    "rank_features(0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Proline concentration is the most important feature for identifying _Class 0_ wines. Now, lets check which feature drives _Class 1_ wine identification.\n",
    "\n",
    "**Listing 21. 43. Ranking Class 1 features by importance**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "proline: -1.14\n",
      "color_intensity: -1.04\n",
      "alcohol: -1.01\n",
      "ash: -0.85\n",
      "hue: 0.68\n",
      "alcalinity_of_ash: 0.58\n",
      "malic_acid: -0.44\n",
      "flavanoids: 0.35\n",
      "proanthocyanins: 0.26\n",
      "nonflavanoid_phenols: 0.21\n",
      "magnesium: -0.10\n",
      "od280/od315_of_diluted_wines: 0.05\n",
      "total_phenols: 0.03\n"
     ]
    }
   ],
   "source": [
    "rank_features(1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Proline concentration is the most important feature for both _Class 0_ and _Class 1_ wines.  The _Class 0_ coefficient is positive  while the _Class 1_ coefficient is negative. Positive coefficients increase the weighted sum of linear values, while negative values decrease that sum. Thus, a high proline concentration implies that: \n",
    "\n",
    "1. A wine is less likely to a _Class 1_ wine.\n",
    "2. wine is more likely to be a _Class 0_ wine.\n",
    "\n",
    "We can check our hypothesis by plotting histograms of proline concentration for the two classes of wine.\n",
    "\n",
    "**Listing 21. 44. Plotting proline histograms across _Class 0_ and _1_ wines**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "index = data.feature_names.index('proline')\n",
    "plt.hist(X[y == 0][:, index], label='Class 0')\n",
    "plt.hist(X[y == 1][:, index], label='Class 1', color='y')\n",
    "plt.xlabel('Proline concentration')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 21. 6 Linear Classifier Limitations\n",
    "\n",
    "The most serious limitation of linear classifiers is right there in the name; linear classifiers learn _linear_ decision boundaries. However, there are countless classification problems that are not linearly separable. Consider for example, the problem of classifying urban and non-urban households. Lets assume prediction is driven by the distance to the city center. Below, we'll simulate these households and then search for an optimal decision boundary. Unfortunately, we'll fail in our efforts.\n",
    "\n",
    "**Listing 21. 45. Simulating a non-linearly separable scenario**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAD4CAYAAADxeG0DAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deVzU1f748deZQVHUtBAxU0FMFBVXMqks1FazvPVrsdRMM7LyZuatXNLuLbXslubVm4rlcgVbbLPUb9c0uWlZhoW24Iqg5o77grKc3x/DjDDMygx8GHg/Hw8eOJ+Zz+fzHoT358w573M+SmuNEEKIwGUyOgAhhBC+kUQuhBABThK5EEIEOEnkQggR4CSRCyFEgAsy4qQNGzbUkZGRRpxaCCEC1qZNm45qrcPstxuSyCMjI0lLSzPi1EIIEbCUUtmOtkvXihBCBDhJ5EIIEeAkkQshRIAzpI9cCOFcXl4e+/btIzc31+hQhEFq1apF06ZNqVGjhkevl0QuRCWzb98+6tWrR2RkJEopo8MRFUxrTU5ODvv27aNFixYe7eNx14pSar5S6rBS6rdi265QSn2tlNpR9P3yMsQthCgmNzeX0NBQSeLVlFKK0NBQrz6RedNHvhC43W7bGGCN1roVsKbosRDCR5LEqzdv//89TuRa62+BY3ab+wGLiv69CPiLV2cvg6VLl7J+/fryPo0QQgQMX6tWwrXWB4r+fRAId/ZCpVSiUipNKZV25MiRMp3s7NmzPPXUU/To0YObbrqJVatWIeupC+F/ZrOZTp060a5dOzp27Mhbb71FYWFhmY41ceJEVq9e7fT5OXPm8J///KesodpkZWVRu3ZtOnXqRMeOHbnuuuvYtm2bz8d1p27duuV+Dre01h5/AZHAb8Uen7B7/rgnx+natasui1OnTukJEyboBg0aaEADOi4uTn/66ae6oKCgTMcUorL5448/jA5B16lTx/bvQ4cO6d69e+uJEycaGJF7u3fv1u3atbM9njNnjn7kkUfK/bzFf1buFBYWepyrHP0eAGnaQU71tUV+SCl1JUDR98M+Hs+levXq8corr5Cdnc3rr79Oo0aNSEtL49577yU2NpaDBw+W5+mFqJYaNWpEUlISs2bNQmtNQUEBzz//PNdccw0dOnRg7ty5ttdOnTqV2NhYOnbsyJgxliGzRx99lI8//hiAMWPG0LZtWzp06MDf/vY3AP7+97/z5ptvApCenk737t3p0KED99xzD8ePHwcgISGBF198kW7duhEdHc26devcxn3q1Ckuv9xSf5Gbm8uQIUOIjY2lc+fOrF27FoCFCxcyYsQI2z59+/YlNTUVsLS0x48fT8eOHenevTuHDh0CYPfu3cTHxxMbG8tLL71k2/fMmTP07t2bLl26EBsby7JlywDLJ4XWrVvzyCOP0L59e1599VWeffZZ237z5s1j1KhRnv53OOYouzv7onSL/J/AmKJ/jwHe8OQ4ZW2R2zt79qyeOXOmbtasme7YsaMuLCy0PZefn++XcwhR0exbYhR9+nT0NXfuXNvr5s6d6/K13nDUyqxfv74+ePCgnjt3rn711Ve11lrn5ubqrl276szMTL1y5UodHx+vz549q7XWOicnR2ut9eDBg/XSpUv10aNHdXR0tO3v9Pjx41prrV9++WX9z3/+U2utdWxsrE5NTdVaaz1hwgQ9cuRIrbXWN910k37uuee01lqvWLFC9+7du1R8u3fv1rVq1dIdO3bUUVFRunHjxjo7O1trrfWbb76phwwZorXWOiMjQzdr1kyfP39eL1iwQD/99NO2Y9x555167dq1tp/7F198obXW+vnnn7e957vuuksvWrRIa631rFmzbD+rvLw8ffLkSa211keOHNEtW7bUhYWFevfu3VoppTds2KC11vr06dM6KipKX7x4UWutdXx8vN6yZUup91MuLXKl1PvABqC1UmqfUuox4HXgFqXUDuDmoscVJiQkhBEjRrBz504+++wz20jvrl27aNGiBdOmTePMmTMVGZIQVd6qVav4z3/+Q6dOnbj22mvJyclhx44drF69miFDhhASEgLAFVdcUWK/+vXrU6tWLR577DE+/fRT2+usTp48yYkTJ7jpppsAGDx4MN9++63t+XvvvReArl27kpWV5TC2li1bkp6ezq5du3j77bdJTEwEYP369QwcOBCANm3aEBERwfbt212+z5o1a9K3b99S5/zuu+946KGHABg0aJDt9Vprxo0bR4cOHbj55pv5888/ba34iIgIunfvDlha+r169WL58uVs3bqVvLw8YmNjXcbijjdVKw9pra/UWtfQWjfVWr+ntc7RWvfWWrfSWt+stbavaqkQNWvWLFE4n5yczN69exk9ejSR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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "np.random.seed(0)\n",
    "X = np.array([[np.random.normal(), np.random.normal()]\n",
    "              for _ in range(200)]) \n",
    "y = (np.linalg.norm(X, axis=1) < 2).astype(int)\n",
    "\n",
    "clf = LogisticRegression()\n",
    "clf.fit(X, y)\n",
    "weights = np.hstack([clf.coef_[0], clf.intercept_])\n",
    "\n",
    "a, b, c = weights\n",
    "boundary = lambda x: -(a * x + c) / b\n",
    "plt.plot(range(-4, 5), boundary(range(-4, 5)),  color='k', linestyle='--', \n",
    "                                linewidth=2, label='Decision Boundary')\n",
    "for i in [0, 1]:\n",
    "    plt.scatter(X[y == i][:, 0], X[y == i][:, 1],\n",
    "                label= ['Suburban', 'Urban'][i],\n",
    "                color=['b', 'y'][i])\n",
    "\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
